package user;

import book.Book;
import book.Library;

import java.time.LocalDate;
import java.util.Scanner;

public class AdminUser extends User{
    private static AdminUser adminUser;
    private Library library=Library.getInstance();
    private Scanner scanner=new Scanner(System.in);

    private AdminUser(String name,int userId){
        super(name,userId,"管理员");
    }

    public static AdminUser getInstance(String name,int userId){
        if(adminUser==null){
            adminUser = new AdminUser(name,userId);
        }
        return adminUser;
    }
    @Override
    public int display() {
        System.out.println("管理员"+name+"的操作菜单");
        System.out.println("1. 查找图书");
        System.out.println("2. 打印所有的图书");
        System.out.println("3. 退出系统");
        System.out.println("4. 上架图书");
        System.out.println("5. 修改图书");
        System.out.println("6. 下架图书");
        System.out.println("7. 统计借阅次数");
        System.out.println("8. 查看最后欢迎的前K本书");
        System.out.println("9. 查看库存状态");
        System.out.println("10. 检查超过⼀年未下架的图书");
        System.out.println("请选择你的操作: ");
        Scanner scanner=new Scanner(System.in);
        return scanner.nextInt();
    }

    public void addBook() {
        System.out.println("请输入书名：");
        String title = scanner.nextLine(); // 输入书名
        System.out.println("请输入作者：");
        String author = scanner.nextLine(); // 输入作者
        System.out.println("请输入类别：");
        String category = scanner.nextLine(); // 输入图书类别
        System.out.println("请输入出版年份：");
        int year = scanner.nextInt(); // 输入出版年份
        scanner.nextLine(); // 吞掉换行符
        LocalDate shelfDate = LocalDate.now(); // 当前时间作为上架时间
        Book newBook = new Book(title, author, category, year, shelfDate);
        // 创建新书对象
        //调用图书类 添加图书
        library.addBook(newBook);

    }
    //图书修改⽀持修改书名作者类别
    public void updateBook() {
        library.displayBooks();
        System.out.println("请输入要修改的图书id：");
        int bookId = scanner.nextInt();
        scanner.nextLine();
        Book book = library.searchBookById(bookId);
        if(book==null){
            System.out.println("没有ID为："+bookId+" 的书籍！");
            return;
        }else{
            System.out.println("当前书名：" + book.getBookName());
            System.out.println("请输入新的书名：");
            String newTitle = scanner.nextLine(); // 输入新的书名
            System.out.println("当前作者：" + book.getAuthor());
            System.out.println("请输入新的作者：");
            String newAuthor = scanner.nextLine(); // 输入新的作者
            System.out.println("当前类别：" + book.getCategory());
            System.out.println("请输入新的类别：");
            String newCategory = scanner.nextLine(); // 输入新的类别

            book.setBookName(newTitle);
            book.setAuthor(newAuthor);
            book.setCategory(newCategory);
            library.updateBook(book);
        }
    }
    //删除书籍

    public void removeBook() {
        library.displayBooks();
        System.out.println("请输入要删除的图书的ID：");
        int bookId = scanner.nextInt();
        scanner.nextLine();
        Book removeBook =library.searchBookById(bookId);
        library.removeBook(removeBook);
        System.out.println("图书："+removeBook.getBookName()+" 已经被删除！");
    }
    //统计每本书的借阅次数
    public void borrowCount() {
        library.borrowCount();
    }
    //查询最受欢迎的前n本书

    public void generateBook() {
        System.out.println("请输入你要查看的最受欢迎的前K本书,注意k值不能超过："+library.getBookCount());
        int k = scanner.nextInt();
        if(k<=0||k>library.getBookCount()){
            System.out.println("没有最受欢迎的前"+k+"本书！");
            return;
        }
        library.generateBook(k);
    }
    //查看库存状态
    public void checkInventoryStatus() {
        library.checkInventoryStatus();
    }
    //并移除上架超过⼀年的图书
    public void checkAndRemoveOldBooks() {
        library.checkAndRemoveOldBooks();
    }
}
